package com.zjff.mobiletwo.controller;

import com.zjff.mobiletwo.service.IcartService;
import com.zjff.mobiletwo.service.impl.CartServiceImpl;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@CrossOrigin//跨域
@RestController//遵循RestFul
@RequestMapping("v2/Pcart/")
public class PcartController extends BaseController {
    @Autowired
    private IcartService cartService;
    @Resource
    CartServiceImpl cartServiceimpl;

    /**
     * 将商品添加到购物车
     * @param uid      当前登录用户的id
     * @param pid      商品的id
     * @param amount   增加的数量
     * @param username 当前登录的用户名
     * @return
     */
    @PutMapping("addcart")
    public String addToCart(Integer uid,Integer pid, Integer amount,String username){
        return cartService.addToCart(uid,pid,amount,username);
    }
    /**
     * 修改购物车中商品数量
     * @param cid 购物车商品id
     * @param amount 修改的数量
     * @param uid 当前登入的用户id
     * @param username 当前登入的用户名
     * @return
     */
    @PutMapping("updatanum")
    public String updateNumByCid(Integer cid, Integer amount, Integer uid, String username) {
        String data = cartService.updateNumByCid(cid, amount, uid, username);
        return data;
    }
    /**
     * 根据用户id和商品id删除购物车中的商品
     * @param pid 商品id
     * @param uid 用户id
     * @param username 用户名
     * @return
     */
    @DeleteMapping("delcart")
    public String deleteByUidAndPid(Integer uid, Integer pid, String username) {
        return cartService.deleteByUidAndPid(uid, pid, username);
    }
    /**
     * 根据用户id和商品id查询某用户的购物车数据
     * @param pid 商品id
     * @param uid 用户id
     * @param username 用户名
     * @return
     */
    @GetMapping("getbypid")
    public String findByUidAndPid(Integer uid, Integer pid, String username) {
        return cartService.findByUidAndPid(uid, pid, username);
    }
    /**
     * 查询某用户的购物车数据
     * @param uid 用户id
     * @return 该用户的购物车数据的列表
     */
    @GetMapping({"getlist"})
    public String getVOByUid(Integer uid) {
        // 返回成功与数据
        return  cartService.getVOByUid(uid);
    }
    /**
     * 增加购物车商品数量
     * @param cid 购物车数量的id
     * @param amount 想要增加的数量
     * @param uid 当前登录的用户的id
     * @param username 当前登录的用户名
     * @return data
     */
    @PostMapping("addnum")
    public String addNum(Integer cid,Integer amount,Integer uid,String username) {
        String data = cartService.addNum(cid,amount, uid, username);
        // 返回成功与数据
        return  data;
    }
    /**
     * 根据若干个购物车数据id查询详情的列表
     * @param uid  当前登录的用户的id
     * @param cids 若干个购物车数据id
     * @return
     */
    @GetMapping("list")
    public String getVOByCids(Integer uid,Integer[] cids) {
        // 返回成功与数据
        return cartService.getVOByCids(uid,cids);
    }
    @DeleteMapping("dellist")
    public String deleteByCids(Integer uid, Integer[] cids) {
        return cartService.deleteByCids(uid, cids);
    }
}
